﻿Public Class Form1

    Dim nbrq As Integer = 0 'Numero de question
    Dim tabRep(2) As String
    Dim tabQr(7, 3) As String
    Dim cest_un_QCS As Boolean
    Dim rep As Boolean
    Dim goodrep As Integer = 0 'Nombre de bonnes réponses
    Dim badrep As Integer = 0 'Nombre de mauvaises réponses

    Public Function initialisation() 'Fonction pour initialiser les boutons à cocher pour la question suivante
        CheckBox1.Checked = False
        CheckBox2.Checked = False
        CheckBox3.Checked = False
        RadioButton1.Checked = False
        RadioButton2.Checked = False
        RadioButton3.Checked = False

        Return 0
    End Function

    Public Function bonnereponse(ByVal nbrq As Integer) As Boolean
        If (nbrq = 1) Then
            If (RadioButton1.Checked = False) Then
                If (RadioButton2.Checked = False) Then
                    If (RadioButton3.Checked = True) Then
                        Return True
                    Else
                        Return False
                    End If
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End If
        If (nbrq = 2) Then
            If (RadioButton1.Checked = False) Then
                If (RadioButton2.Checked = False) Then
                    If (RadioButton3.Checked = True) Then
                        Return True

                    Else
                        Return False
                    End If
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End If
        If (nbrq = 3) Then
            If (RadioButton1.Checked = False) Then
                If (RadioButton2.Checked = True) Then
                    If (RadioButton3.Checked = False) Then
                        Return True

                    Else
                        Return False
                    End If
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End If
        If (nbrq = 4) Then
            If (RadioButton1.Checked = True) Then
                If (RadioButton2.Checked = True) Then
                    If (RadioButton3.Checked = False) Then
                        Return True

                    Else
                        Return False
                    End If
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End If
        If (nbrq = 5) Then
            If (CheckBox1.Checked = False) Then
                If (CheckBox2.Checked = False) Then
                    If (CheckBox3.Checked = True) Then
                        Return True

                    Else
                        Return False
                    End If
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End If
        If (nbrq = 6) Then
            If (CheckBox1.Checked = False) Then
                If (CheckBox2.Checked = True) Then
                    If (CheckBox3.Checked = False) Then
                        Return True

                    Else
                        Return False
                    End If
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End If
        If (nbrq = 7) Then
            If (CheckBox1.Checked = False) Then
                If (CheckBox2.Checked = True) Then
                    If (CheckBox3.Checked = False) Then
                        Return True

                    Else
                        Return False
                    End If
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End If
        If (nbrq = 8) Then
            If (CheckBox1.Checked = False) Then
                If (CheckBox2.Checked = True) Then
                    If (CheckBox3.Checked = False) Then
                        Return True

                    Else
                        Return False
                    End If
                Else
                    Return False
                End If
            Else
                Return False
            End If
        End If
        Return False
    End Function
    Public Function affichage(ByVal nbrq As Integer) As Integer

        If (nbrq <= 7) Then
            Dim i As Integer = 0
            ' Les questions QCS
            tabQr(0, 0) = "Que signifie EDI ?"
            tabQr(0, 1) = "Evénementiel Développement Informatique"
            tabQr(0, 2) = "Environment Development Integrated"
            tabQr(0, 3) = "Environnement de Développement Intégré"
            tabQr(1, 0) = "Qu'est-ce qu'un réflexe ?"
            tabQr(1, 1) = "Une procédure ou une fonction"
            tabQr(1, 2) = "Une procédure événementielle"
            tabQr(1, 3) = "Un événement"
            tabQr(2, 0) = "Qu'est-ce qu'un contrôle qui a le focus ?"
            tabQr(2, 1) = "Un contrôle qui a un problème"
            tabQr(2, 2) = "Un contrôle avec une propriété particulière"
            tabQr(2, 3) = "Le contrôle actuellement sélectionné"
            tabQr(3, 0) = "A quoi sert un sender?"
            tabQr(3, 1) = "A désigner l'objet qui a provoqué l'événement"
            tabQr(3, 2) = "A désigner l'événement qui a été provoqué"
            tabQr(3, 3) = "A écrire des procédures"
            tabQr(4, 0) = "A quel moment se produit l'événement Activated d'une Form ?"
            tabQr(4, 1) = "Quand la Form est sélectionnée"
            tabQr(4, 2) = "Quand la Form est montrée pour la première fois"
            tabQr(4, 3) = "Quand la Form est chargée en mémoire"
            'Les questions QCM
            tabQr(5, 0) = "Qu'est-ce qu'une Form ?"
            tabQr(5, 1) = "Une fenêtre"
            tabQr(5, 2) = "Une classe"
            tabQr(5, 3) = "Le conteneur de base de l'interface graphique"
            tabQr(6, 0) = "Quels éléments sont des propriétés (Property) du TextBox ?"
            tabQr(6, 1) = "Visible"
            tabQr(6, 2) = "Clear"
            tabQr(6, 3) = "Text"
            tabQr(7, 0) = "Cocher les éléments caractérisant un tableau en VB.net:"
            tabQr(7, 1) = "Tous les éléments du tableau ont le même type"
            tabQr(7, 2) = "Le tableau peut être redimensionné en cours de traitement"
            tabQr(7, 3) = "On définit un tableau avec le mot array"
            If (nbrq <= 4) Then
                question.Text = tabQr(nbrq, i)
                RadioButton1.Text = tabQr(nbrq, i + 1)
                RadioButton2.Text = tabQr(nbrq, i + 2)
                RadioButton3.Text = tabQr(nbrq, i + 3)
                CheckBox1.Text = tabQr(nbrq, i + 1)
                CheckBox2.Text = tabQr(nbrq, i + 2)
                CheckBox3.Text = tabQr(nbrq, i + 3)
            Else
                pnlQCM.Show()
                pnlQCS.Hide()
                question.Text = tabQr(nbrq, i)
                CheckBox1.Text = tabQr(nbrq, i + 1)
                CheckBox2.Text = tabQr(nbrq, i + 2)
                CheckBox3.Text = tabQr(nbrq, i + 3)
            End If
        Else
            MsgBox("Vous avez " + goodrep.ToString + " bonne(s) réponse(s) et " + badrep.ToString + " mauvaise(s) réponse(s)", MsgBoxStyle.Exclamation)
        End If

        Return nbrq
    End Function
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Permet la superposition des deux Panels : pnlQCS et pnlQCM
        'On rend les deux Panels enfants de la form
        pnlQCS.Parent = Me
        pnlQCM.Parent = Me
        'On indique leur position
        Dim unPoint As New System.Drawing.Point(50, 50)
        pnlQCS.Location = unPoint
        pnlQCM.Location = unPoint

        initialisation()
        ListBox1.Items.Add("Vos réponses :")
        pnlQCM.Hide()
        affichage(0) 'load programme commence par 1ere question appel fonction question envoi 0 = nbrq
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        End
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        nbrq = nbrq + 1
        If (nbrq >= 1 & nbrq < 9) Then
            rep = bonnereponse(nbrq)
            If (rep = True) Then
                ListBox1.Items.Add("Question " + nbrq.ToString + ": Vrai") 'ToString sert à convertir l'entier en chaîne de caractère
                goodrep = goodrep + 1 'Si la réponse est bonne on incrémente goodrep
            Else

                ListBox1.Items.Add("Question " + nbrq.ToString + ": Faux")
                badrep = badrep + 1
            End If
        End If
        initialisation()
        affichage(nbrq)
    End Sub
End Class
